let a: string   // 变量 a 只能存储字符串
let b: number   // 变量 b 只能存储数值
let c: boolean  // 变量 c 只能存储布尔值

a = 'hello'
// a = 9      // 警告 不能将类型 'number' 分配给类型 'string'
// a = false

b = 666
// b = '你好' // 警告 不能将类型 'string' 分配给类型 'number'

c = true
// c = 666    // 警告 不能将类型 'number' 分配给类型 'boolean'
console.log(a, b, c)

// 参数 x 必须时数字, 参数 y 也必须是数字, 函数返回值也必须是数字
function count(x: number, y: number): number {
  // return x + y + 'hello'
  return x + y
}

let result = count(100, 200)
console.log(result)
// count(100, '200')      // 警告: 类型 'string' 的参数不能赋给类型 'number' 的参数
// count(100, 200, 300)   // 警告: 应有 2 个参数, 但获得 3 个
// count(100)             // 警告: 应有 2 个参数, 但获得 1 个